package com.shengzhe.ostudent.utils.result;

/**
 * 执行结果
 *
 * @author xuan
 */
public enum E {


    /**
     * 该用户不存在
     */
    USER_CODE_N2(-2, "该用户未登录"),


    /**
     * 无效签名
     */
    USER_CODE_N13(-13, "无效签名"),
    /**
     * token过期
     */
    USER_CODE_N3(-3, "登录过期"),
    /**
     * token算法不一致
     */
    USER_CODE_N11(-11, "未登录"),
    /**
     * 添加数据失败
     */
    DATA_CODE_N6(-6, "添加数据失败"),
    /**
     * 修改数据失败
     */
    DATA_CODE_N7(-7, "修改数据失败"),
    /**
     * 删除数据失败
     */
    DATA_CODE_N8(-8, "删除数据失败"),


    DATA_CODE_N10(-10, "文件类型错误"),
    /**
     * 请求参数异常
     */
    REQUEST_CODE_N9(-9, "请求参数异常"),

    /**
     * 激活失败，请稍后重试！
     */
    ACTIVATION_CODE_N12(-12, "激活失败，请稍后重试！"),
    /**
     * 5分钟后可以重新获取验证码
     */
    SMS_CODE_N15(-15, "您获取验证码次数频繁，请30分钟后再来尝试吧"),


    /**
     * 你已经报名了
     */
    SIGN_CODE_N18(-18, "你已经报名了"),

    PAGE_CODE_N19(-19, "请输入正确的页码"),

    /**
     * 解析异常
     */
    PARSE_CODE_N21(-21, "解析异常"),


    /**
     * 该活动已下架
     */
    EVENT_CODE_N25(-25, "该活动已下架"),

    /**
     * 发送短信失败
     */
    ACTIVATION_CODE_N26(-26, "该激活码已使用！"),

    /**
     * 远程服务未响应
     */
    SERVER_CODE_N27(-27, "远端服务未响应"),


    /**
     * 解析第三方消息失败
     */
    MES_CODE_N28(-28, "消息解析也超时"),
    /**
     * 请求方式不支持
     */
    REQUEST_CODE_N30(-30, "请求方式不支持"),

    /**
     * 同步用户信息失败
     */
    USER_CODE_N31(-31, "同步用户信息失败"),

    /**
     * 由于对方的隐私设置，您无法查看该内容
     */
    USER_CODE_N32(-32, "由于对方的隐私设置，您无法查看该内容"),
    COMMENT_CODE_N33(-33, "请说点什么吧~~~"),

    MES_CODE_N34(-34, "消息推送失败，请联系管理员"),

    CONTENT_CODE_N35(-35, "该内容不存在或已被删除"),

    EXAMINE_CODE_N36(-36, "当前包含敏感词汇,请重新编辑"),

    /**
     * 你已被禁言
     */
    USER_CODE_N37(-37, "您已被禁言，如有疑问请联系客服"),

    /**
     * 你已被禁言
     */
    USER_CODE_N38(-38, "不能包含除文字外其他字符"),

    SMS_CODE_N39(-39, "验证码已过期，请重新获取"),

    SMS_CODE_N40(-40, "验证码错误！"),

    /**
     * 数据过大
     */
    DATA_CODE_N41(-41, "您要发布的内容超出最大字数限制"),

    /**
     * 该手机号已绑定其他微信号
     */
    USER_CODE_N42(-42, "该手机号已被注册"),

    /**
     * 建立新聊天失败!
     */
    GENERATE_CODE_N43(-43, "最大生成限制: 200"),

    /**
     * 该用户处于异常状态，请联系管理员
     */
    USER_CODE_N44(-44, "该用户处于异常状态，请联系管理员"),

    USER_CODE_N45(-45, "更多内容请登录后查看~"),

    USER_CODE_N46(-46, "您还未注册，请前往注册"),

    /**
     * 该手机号已绑定其他微信号
     */
    USER_CODE_N47(-47, "该手机号已经注册"),

    /**
     * 文件上传失败
     */
    DATA_CODE_N48(-48, "文件上传失败"),

    USER_CODE_N49(-49, "密码有误，请检查后重试"),

    /**
     * 该用户不存在
     */
    USER_CODE_N50(-50, "该用户不存在"),
    USER_CODE_N51(-51, "两次密码不一致！"),
    EMAIL_CODE_N52(-51, "邮箱格式错误！"),

    DATA_CODE_N53(-53,"数据插入异常！"),

    DATA_CODE_N54(-54,"无法连接数据源！"),

    USER_CODE_N55(-55,"用户信息不能为空!"),
    USER_CODE_N56(-56,"输入的省市ID非具体地址!"),

    USER_CODE_N57(-57,"该手机号已经注册!"),

    USER_CODE_N58(-58,"密码错误!"),

    USER_CODE_N59(-59,"该手机号未注册!"),
    USER_CODE_N60(-60,"该邀请码不存在!"),

    USER_CODE_N61(-61,"请先发送验证码!"),

    USER_CODE_N62(-62,"验证码不一致!"),

    USER_CODE_N63(-63,"验证码不能为空!"),

    USER_CODE_N64(-64,"机构不存在!"),
    USER_CODE_N65(-65,"学生信息不能为空!"),
    USER_CODE_N66(-66,"指导老师信息不能为空!"),
    USER_CODE_N67(-67,"文件上传失败!"),
    USER_CODE_N68(-68,"组委会无法获取上层管理者!"),
    USER_CODE_N69(-69,"审核状态错误!"),
    USER_CODE_N70(-70,"机构不存在!"),

    USER_CODE_N71(-71,"导入失败!"),
    USER_CODE_N72(-72,"审核已通过无法撤销报名!"),
    USER_CODE_N73(-73,"撤销报名失败!"),
    USER_CODE_N74(-74,"组委会无法删除参赛人员!"),
    USER_CODE_N75(-75,"该选手已有参与赛项无法删除!"),
    USER_CODE_N76(-76,"两次输入的密码不一致!"),

    USER_CODE_N77(-77,"图形验证码不一致!"),
    RESPONSE_CODE_N78(-78, "响应异常"),
    REQUEST_CODE_N79(-79, "请求路径不存在"),
    ROLE_CODE_N80(-80, "您所选择的角色不存在！"),
    DATA_CODE_N82(-82, "数据转换失败！"),
    ADMIN_CODE_N81(-81, "系统不支持同时设置多个超级管理员！"),
    ;


    private final Integer code;
    private final String info;

    E(Integer code, String info) {
        this.code = code;
        this.info = info;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return info;
    }

    // 普通方法
    public static String getMsg(Integer code) {
        for (E type : E.values()) {
            if (type.getCode().equals(code)) {
                return type.getMsg();
            }
        }
        return null;
    }

    /**
     * 根据code获取枚举
     *
     * @param code
     * @return
     */
    public static E getByCode(Integer code) {
        for (E type : E.values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }
}
